It is known to provide a variety of services that are delivered remotely to a customer. These services range from point solutions delivering specific service to more complex remote service instantiations supporting multiple services. The technology behind these services has a number of things in common: they are generally a good idea; they provide a valuable service to a set of customers; and, they are generally isolated from one another.
The number of remote services available show the need and demand for such services. However, the fragmentation of the services reduces the overall benefit to the service provider as well as to the customer. The customer is presented with an often confusing issue of which services to use, why the services are different and why the service provider cannot provide a single integrated service.
In the remote services system, it is important to provide a process for prioritizing messages sent from the customer to the service provider. The transfer of large messages (several megabytes of data) from the customer can block the transfer of urgent messages from that customer and also can block all available bandwidth on the customer's local area network. Many customers do not have high bandwidth links to the Internet and it is unacceptable for the remote services system to take over most of this available bandwidth to send large blocks of data. One of the difficulties in this environment is knowing exactly how much bandwidth to allocate to the remote services system. Too much bandwidth could swamp the customer network and too little bandwidth allocation could cause the remote services system to underutilize a fast connection. It is important, therefore, to provide a way for the customer to configure bandwidth.
Another related problem is that of managing bandwidth utilization on a customer network when there are multiple senders. In this context, it is important to have an efficient method for aggregating the bandwidth used by each of these senders and to then control (or limit) the amount of data these senders can transmit (or receive). Finally, large data transfers tend to be of low priority, while short messages in the remote services system tend to be of much higher priority (systems management alarms, for example) which need to get to the service provider with minimal delay. A remote services system should provide a process to prioritize short, urgent messages over longer, less urgent bulk data transfers to optimize data flow between the system components.